/**
 * Copyright (c) 2013-Now http://aidex.vip All rights reserved.
 */
// 此处第二个参数vm，就是我们在页面使用的this，你可以通过vm获取vuex等操作
const install = (Vue, vm) => {

  // 参数配置对象
  const config = vm.vuex_config;

  // 将各个定义的接口名称，统一放进对象挂载到vm.$u.api(因为vm就是this，也即this.$u.api)下
  vm.$u.api = {

    // 基础服务：登录登出、身份信息、菜单授权、切换系统、字典数据等
    lang: (params = {}) => vm.$u.get('/lang/' + params.lang),
    lang: (params = {}) => vm.$u.get('/lang/' + params.lang),
    ClaListapp: (params = {}) => vm.$u.get(config.adminPath + '/system/cla/ClaListapp', params),
     filterList: (params = {}) => vm.$u.postJson(config.adminPath + '/system/student/Filterlist', params),
    StudentSingleApp: (params = {}) => vm.$u.postJson(config.adminPath + '/system/student/StudentSingleApp', params),
    CourseSingleApp: (params = {}) => vm.$u.postJson(config.adminPath + '/system/scStudentCourse/CourseSingleApp', params),
    SinglelistAPP: (params = {}) => vm.$u.postJson(config.adminPath + '/system/attend/SinglelistAPP', params),
    StudentLeaveMessageList: (params = {}) => vm.$u.get(config.adminPath + '/system/message/StudentLeaveMessageList', params),
    message_info_id : (params = {}) => vm.$u.get(config.adminPath + '/system/message/message_info_id', params),
       ClaRulelist : (params = {}) => vm.$u.getJson(config.adminPath + '/system/rule/ClaRulelist', params),
        ScStudentlistAPP : (params = {}) => vm.$u.getJson(config.adminPath + '/system/scStudentCourse/ScStudentlistAPP', params),
    index : (params = {}) => vm.$u.get(config.adminPath + '/mobile/index', params),
    searchListForCalendar: (params = {}) => vm.$u.postJson(config.adminPath +
      '/system/time/list/searchListForCalendar', params),
      studentListapp: (params = {}) => vm.$u.get(config.adminPath + '/system/student/studentListapp', params),
    addAttend:(params = {}) => vm.$u.postJson(config.adminPath +
      '/system/attend/addAttend', params),
      updateAttend:(params = {}) => vm.$u.postJson(config.adminPath +
        '/system/attend/updateAttend', params),
    searchListForTeacherId: (params = {}) => vm.$u.postJson(config.adminPath +
      '/system/time/list/searchTeacherIdList', params),
      searchListForClaId: (params = {}) => vm.$u.postJson(config.adminPath +
        '/system/time/list/selectScClaTimeClaIdList', params),
    getUserInfo: (params = {}) => vm.$u.get(config.adminPath + '/mobile/user/getUserInfo', params),
    getTeacherMessage: (params = {}) => vm.$u.post(config.adminPath + '/system/message/teacherMessageList', params),
    registerUserInfo: (params = {}) => vm.$u.postJson(config.adminPath + '/mobile/user/registerUserInfo', params),
    registerTeacherInfo: (params = {}) => vm.$u.postJson(config.adminPath + '/mobile/user/registerTeacherInfo',
      params),
    leaveCourseList: (params = {}) => vm.$u.postJson(config.adminPath + '/system/time/list/searchList', params),
    updateRefuseLeave: (params = {}) => vm.$u.postJson(config.adminPath + '/system/message/editRefuseLeave',
      params),
    mobileClassList: (params = {}) => vm.$u.postJson(config.adminPath + '/system/scStudentCourse/mobileClassList',
      params),
      mobileUpdateClassList: (params = {}) => vm.$u.postJson(config.adminPath + '/system/scStudentCourse/mobileUpdateClassList',
        params),
    updateLeaveMessage: (params = {}) => vm.$u.postJson(config.adminPath + '/system/message/editLeave', params),
    addLeaveMessage: (params = {}) => vm.$u.postJson(config.adminPath + '/system/message/leave', params),
    courseList: (params = {}) => vm.$u.getJson(config.adminPath + '/system/course/list', params),
    // teacherCourseList: (params = {}) => vm.$u.postJson(config.adminPath + '/system/time/list/searchListForTeacherCalendar', params),
    login: (params = {}) => vm.$u.post(config.adminPath + '/mobile/login/loginByPassword', params),
    sendCode: (params = {}) => vm.$u.post(config.adminPath + '/mobile/login/sendCode', params),
    upload: (params = {}) => vm.$u.post(config.adminPath + '/mobile/login/upload', params),
    resource: (params = {}) => vm.$u.get(config.adminPath + '/common/download/resource', params),
    registerUser: (params = {}) => vm.$u.post(config.adminPath + '/mobile/user/registerUser', params),
    forget: (params = {}) => vm.$u.post(config.adminPath + '/mobile/user/forget', params),
    //首页相关api
    getIndexCardInfo: (params = {}) => vm.$u.get(config.adminPath + '/mobile/index/getIndexCardInfo', params),
    getM2mOrderFlowList: (params = {}) => vm.$u.get(config.adminPath + '/mobile/index/getM2mOrderFlowList', params),
    //获取卡可购买套餐包
    getM2mOrderPackageList: (params = {}) => vm.$u.get(config.adminPath + '/mobile/index/getM2mOrderPackageList',
      params),

    logout: (params = {}) => vm.$u.get(config.adminPath + '/mobile/login/logout', params),
    authInfo: (params = {}) => vm.$u.get(config.adminPath + '/authInfo', params),
    menuTree: (params = {}) => vm.$u.get(config.adminPath + '/menuTree', params),
    switchSys: (params = {}) => vm.$u.get(config.adminPath + '/switch/' + params.sysCode),
    dictData: (params = {}) => vm.$u.get(config.adminPath + '/system/dict/data/type/' + params.dictType),

    // 账号服务：验证码接口、忘记密码接口、注册账号接口等
    validCode: (params = {}) => vm.$u.getText('/validCode', params),
    getFpValidCode: (params = {}) => vm.$u.post('/account/getFpValidCode', params),
    savePwdByValidCode: (params = {}) => vm.$u.post('/account/savePwdByValidCode', params),
    getRegValidCode: (params = {}) => vm.$u.post('/account/getRegValidCode', params),
    saveRegByValidCode: (params = {}) => vm.$u.post('/account/saveRegByValidCode', params),

    // APP公共服务
    upgradeCheck: () => vm.$u.post('/app/upgrade/check', {
      appCode: config.appCode,
      appVersion: config.appVersion
    }),
    commentSave: (params = {}) => vm.$u.post('/app/comment/save', params),

    // 个人信息修改
    user: {
      saveUserInfo: (params = {}) => vm.$u.post(config.adminPath + '/mobile/user/saveUserInfo', params),
      infoSavePwd: (params = {}) => vm.$u.put(config.adminPath + '/system/user/profile/updatePwd', params),
      infoSavePqa: (params = {}) => vm.$u.post(config.adminPath + '/sys/user/infoSavePqa', params),
    },

    // 员工用户查询
    empUser: {
      listData: (params = {}) => vm.$u.get(config.adminPath + '/sys/empUser/listData', params),
    },

    // 组织机构查询
    office: {
      treeData: (params = {}) => vm.$u.get(config.adminPath + '/sys/office/treeData', params),
    },

    // 增删改查例子
    testData: {
      form: (params = {}) => vm.$u.post(config.adminPath + '/test/testData/form', params),
      list: (params = {}) => vm.$u.post(config.adminPath + '/test/testData/listData', params),
      save: (params = {}) => vm.$u.postJson(config.adminPath + '/test/testData/save', params),
      disable: (params = {}) => vm.$u.post(config.adminPath + '/test/testData/disable', params),
      enable: (params = {}) => vm.$u.post(config.adminPath + '/test/testData/enable', params),
      delete: (params = {}) => vm.$u.post(config.adminPath + '/test/testData/delete', params),
    },

  };

}

export default {
  install
}